/**********************************************************************************************/
// Summator4.h
//
// Element generic 4x summator
// Copyright Diamant Group 2007
/**********************************************************************************************/
#ifndef _GENERIC4_H_
#define	_GENERIC4_H_

#include "stdafx.h"
#include "dgtKernel.h"
#include "dgt_OperElement.h"

/**********************************************************************************************/
class dgt_Generic4_Sum: public dgt_OperElement
{
	public://///////////////////////////////////////////////////////////////////////////////////

							dgt_Generic4_Sum( void );

							~dgt_Generic4_Sum( void );

	public://///////////////////////////////////////////////////////////////////////////////////

		// Name of element
		wxString			get_Name( void )
			{ return m_Name; }

		// Count of outputs
		unsigned long			get_DataInputCount( void )
		{ return 8; }
		unsigned long			get_DataOutputCount( void )
		{ return 5; }
		unsigned long			get_ServiceInputCount( void )
		{ return 1; }
		wxArrayString			get_ServiceInputNames( void );
		
		// Number of bits of operand
		unsigned long		get_BitCountOperand( void )
			{ return m_BitCountOper; }
		
		// Number of bits of result
		unsigned long		get_BitCountResult( void )
			{ return m_BitCountRes; }

		// Number of operands
		unsigned long		get_OperandCount( void ) 
			{ return m_OperandCount; }

		// Number of operations
		unsigned long		get_OpCount( void )
			{ return m_OpCount;	}

		// Operations names
		wxArrayString		get_OpNames( void )
			{ return m_OpNames; }

		// Mnemonic names
		wxArrayString		get_MnemNames( void )
			{ return m_MnemNames; }

	private:////////////////////////////////////////////////////////////////////////////////////
	
		wxString				m_Name;
		wxArrayString			m_OpNames, m_MnemNames;
		unsigned long			m_BitCountOper, m_OpCount, m_BitCountRes, m_OperandCount;	

};

#endif // _GENERIC4_H_